package edu.caece.langprocessor.syntax.tree;

import edu.caece.langprocessor.syntax.tree.nodes.AddTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.AssignmentTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.BeginTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.CallTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.ConditionEqualsTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.ConditionEvenTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.ConditionGreaterEqualsTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.ConditionGreaterTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.ConditionLowerEqualsTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.ConditionLowerTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.ConditionOddTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.ConditionTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.ConstTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.DefblockTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.DefcmdConstTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.DefcmdVarTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.DivTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.DoTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.EndOfProgramTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.EndOfStatementTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.EndTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.EqualsTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.EvenTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.ExpressionAddTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.ExpressionSubsTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.ExpressionTermTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.FactorIdTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.FactorTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.GreaterEqualsTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.GreaterTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.IdListTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.IdentifierTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.IfTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.LeftParenthesisTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.LowerEqualsTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.LowerTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.MainBlockTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.MultTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.NumericalTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.OddTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.ProcBlockTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.ProcedureTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.ProgTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.ReadlnTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.RightParenthesisTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.SeparatorTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.SimpleTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.StmtAssignmentTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.StmtCallTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.StmtIfTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.StmtListTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.StmtReadlnTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.StmtStmtsBlockTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.StmtWhileTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.StmtWriteTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.StmtWritelnTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.StmtsBlockTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.StringTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.SubsTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.TermDivTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.TermFactorTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.TermMultTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.ThenTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.VarTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.WhileTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.WrParamsTailIdTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.WrParamsTailTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.WriteTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.WritelnTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.WrparamsIdTreeNode;
import edu.caece.langprocessor.syntax.tree.nodes.WrparamsStringTreeNode;

public interface TreeNodeVisitor {

	public void visitAddTreeNode(AddTreeNode node);

	public void visitAssignmentTreeNode(AssignmentTreeNode node);

	public void visitBeginTreeNode(BeginTreeNode node);

	public void visitCallTreeNode(CallTreeNode node);

	public void visitConditionEqualsTreeNode(
			ConditionEqualsTreeNode node);

	public void visitConditionEvenTreeNode(
			ConditionEvenTreeNode node);

	public void visitConditionGreaterEqualsTreeNode(
			ConditionGreaterEqualsTreeNode node);

	public void visitConditionGreaterTreeNode(
			ConditionGreaterTreeNode node);

	public void visitConditionLowerEqualsTreeNode(
			ConditionLowerEqualsTreeNode node);

	public void visitConditionLowerTreeNode(
			ConditionLowerTreeNode node);

	public void visitConditionOddTreeNode(
			ConditionOddTreeNode node);

	public void visitConditionTreeNode(ConditionTreeNode node);

	public void visitConstTreeNode(ConstTreeNode node);

	public void visitDefblockTreeNode(DefblockTreeNode node);

	public void visitDefcmdConstTreeNode(DefcmdConstTreeNode node);

	public void visitDefcmdVarTreeNode(DefcmdVarTreeNode node);

	public void visitDivTreeNode(DivTreeNode node);

	public void visitDoTreeNode(DoTreeNode node);

	public void visitEndOfProgramTreeNode(EndOfProgramTreeNode node);

	public void visitEndOfStatementTreeNode(EndOfStatementTreeNode node);

	public void visitEndTreeNode(EndTreeNode node);

	public void visitEqualsTreeNode(EqualsTreeNode node);

	public void visitEvenTreeNode(EvenTreeNode node);

	public void visitExpressionAddTreeNode(ExpressionAddTreeNode node);

	public void visitExpressionSubsTreeNode(ExpressionSubsTreeNode node);

	public void visitExpressionTermTreeNode(ExpressionTermTreeNode node);

	public void visitFactorIdTreeNode(FactorIdTreeNode node);

	public void visitFactorTreeNode(FactorTreeNode node);

	public void visitGreaterEqualsTreeNode(GreaterEqualsTreeNode node);

	public void visitGreaterTreeNode(GreaterTreeNode node);

	public void visitIdentifierTreeNode(IdentifierTreeNode node);

	public void visitIdListTreeNode(IdListTreeNode node);

	public void visitIfTreeNode(IfTreeNode node);

	public void visitLeftParenthesisTreeNode(LeftParenthesisTreeNode node);

	public void visitLoweEqualsTreeNode(LowerEqualsTreeNode node);

	public void visitLowerTreeNode(LowerTreeNode node);

	public void visitMainBlockTreeNode(MainBlockTreeNode node);

	public void visitMultTreeNode(MultTreeNode node);

	public void visitNumericalTreeNode(NumericalTreeNode node);

	public void visitOddTreeNode(OddTreeNode node);

	public void visitProcblockTreeNode(ProcBlockTreeNode node);

	public void visitProcedureTreeNode(ProcedureTreeNode node);

	public void visitProgTreeNode(ProgTreeNode node);

	public void visitReadlnTreeNode(ReadlnTreeNode node);

	public void visitRightParenthesisTreeNode(RightParenthesisTreeNode node);

	public void visitSeparatorTreeNode(SeparatorTreeNode node);

	public void visitSimpleTreeNode(SimpleTreeNode node);

	public void visitStmsCallTreeNode(StmtCallTreeNode node);

	public void visitStmtAssignmentTreeNode(StmtAssignmentTreeNode node);

	public void visitStmtIfTreeNode(StmtIfTreeNode node);

	public void visitStmtListTreeNode(StmtListTreeNode node);

	public void visitStmtReadlnTreeNode(StmtReadlnTreeNode node);

	public void visitStmtsBlockTreeNode(StmtsBlockTreeNode node);

	public void visitStmtStmtsBlockTreeNode(StmtStmtsBlockTreeNode node);

	public void visitStmtWhileTreeNode(StmtWhileTreeNode node);

	public void visitStmtWritelnTreeNode(StmtWritelnTreeNode node);

	public void visitStmtWriteTreeNode(StmtWriteTreeNode node);

	public void visitStringTreeNode(StringTreeNode node);

	public void visitSubsTreeNode(SubsTreeNode node);

	public void visitTermDivTreeNode(TermDivTreeNode node);

	public void visitTermFactorTreeNode(TermFactorTreeNode node);

	public void visitTermMultTreeNode(TermMultTreeNode node);

	public void visitThenTreeNode(ThenTreeNode node);

	public void visitVarTreeNode(VarTreeNode node);

	public void visitWhileTreeNode(WhileTreeNode node);

	public void visitWritelnTreeNode(WritelnTreeNode node);

	public void visitWriteTreeNode(WriteTreeNode node);

	public void visitWrparamsIdTreeNode(WrparamsIdTreeNode node);

	public void visitWrparamsStringTreeNode(
			WrparamsStringTreeNode node);

	public void visitWrParamsTailIdTreeNode(
			WrParamsTailIdTreeNode node);

	public void visitWrParamsTailTreeNode(WrParamsTailTreeNode node);

}
